#include <iostream>

using namespace std;

string s1, s2;

// 中序 BADC
// 后序 BDCA
// 先序 根 左子树 右子树
// 1.找根节点，s2.back()，输出
// 2.在中序中找根节点，划分左右子树
// 3.得到左右子树的中序和后序
// 4.找左右子树的根

void dfs(int l1, int r1, int l2, int r2)
{
	// 递归出口
	// 当区间不合法时，返回
	if(l1 > r1) return;

	// 1.确定根节点
	cout << s2[r2];
	
	int p = l1;
	while(s1[p] != s2[r2]) p++; // p用来标记中序遍历中根节点的位置

	// 划分左右子树
	dfs(l1, p - 1, l2, l2 + p - l1 - 1); // 递归处理左子树
	dfs(p + 1, r1, l2 + p - l1, r2 - 1); // 递归处理右子树

}

int main()
{
	cin >> s1 >> s2;
	dfs(0, s1.size() - 1, 0, s2.size() - 1);

	return 0;
}



